
#ifndef VENTANACHAT_H_
#define VENTANACHAT_H_

#include "SDL/SDL.h"
#include "../constantes.h"
#include <string>
#include <list>
#include "../red/thread.h"
#include "BotonEnviar.h"
#include "ListBox.h"
#include "TextBox.h"
#include "../modelo/Personaje.h"


using namespace std;

class VentanaChat{
//private:
	//
public:
	void run();
	VentanaChat(SDL_Surface*);
	virtual ~VentanaChat();
	void setVisible(bool);
	bool getVisible();
	void dibujar();
	void escucharEventos(SDL_Event);
	bool getEventoSobreVentana();
	void mostrar();
	bool getHayMensajeNuevo() const;
	void setHayMensajeNuevo(bool hayMensajeNuevo);
	const string& getMensajeNuevo() const;
	void setMensajeNuevo(const string& mensajeNuevo);
	const string& getPersonajeDestino() const;
	void setPersonajeDestino(const string& personajeDestino);
	const string& getPersonajeOrigen() const;
	void setPersonajeOrigen(const string& personajeDestino);
	void agregarMensajeRecibido(string nombreCliente,string mensaje);
/*	void dibujarFondo(string);
	int DesplegarSolapaServidor();
	int DesplegarSolapaClienteConectar();
	int DesplegarSolapaClienteJugar();
	int DesplegarSolapaModoJuego();
	void setPuertoServidor(int);
	int getPuertoServidor();
	string getOpcionServidor();
	int getPuertoCliente();
	void setPuertoCliente(int);
	string getHostCliente();
	void setHostCliente(string);
	string getPersonajeElegido();
	void setMensajeError(string);
	void setMensajeErrorJugar(string);
	string getMensajeError();
	string getMensajeErrorJugar();
	TipoPersonaje getTipoPersonaje();
	void setValoresDefecto();
	void setNombreOponente(string);
	void setRutaYaml(string);
	bool getCerrar();
	bool getEsServer();
	bool getEsSinglePlayer();
	int getNumeroJugadores();
	void setNumeroJugadores(int);
	void clearOponentes() {listaOponentes.clear();};*/

private:

	bool visible, eventoSobreVentana;
	SDL_Surface *screen, *fondo;
	SDL_Rect recuadro, recListBox, boton_arr, boton_ab;
	TextBox *box;
	ListBox *lbox;
	BotonEnviar *boton;
	bool hayMensajeNuevo;
	string mensajeNuevo;
	string personajeDestino;
	string personajeOrigen;

/*	SDL_Surface *vista;
	int puertoServidor, puertoCliente, numeroJugadores;
	string opcionServidor, hostCliente, opcionCliente, rutaYAML;
	string mensajeError,mensajeErrorJugar;
	//string nombreOponente;
	TipoPersonaje personajeElegido;
	bool cerrar, esServer;
	list<string> listaOponentes;
	bool esSinglePlayer;*/

};

#endif /* VENTANACHAT_H_ */
